package top.infopub.mgr.bpa.service;


import java.math.BigDecimal;
import java.util.List;

import top.infopub.generic.GenericService;
import top.infopub.mgr.bpa.domain.ContractExtDetailAndSubDomain;
import top.infopub.model.bpa.ContractExtDetail;


public interface ContractExtDetailService extends GenericService<ContractExtDetail, String> {

    /**
     * 根据承继协议id查询分解清单子项费用明细
     */
    List<ContractExtDetail> selectByContractExtDetailId(String contractExtId);

    /**
     * 批量添加承继协议清单分解子项费用明细
     */
    void insertByBatch(List<ContractExtDetail> contractExtDetails);

    /**
     * 根据承继协议id查询分解清单子项费用明细和子项信息
     */
    List<ContractExtDetailAndSubDomain> selectDetailAndSub(String contractExtId, String feeType1,
                                                           String feeType3, String feeSmallType1,
                                                           String feeSmallType2,String levels);

    /**
     * 根据承继协议id查询分解清单子项费用明细和子项信息及下浮金额
     */
    List<ContractExtDetailAndSubDomain> selectDetailAndSubDomain(String contractExtId);

    /**
     * 查询项目合同_对外建安费(元)(下浮前)和总包合同_对外建安费(元)(下浮前)
     */
    BigDecimal selectByDetailAmount(String extSubId);

    /**
     * 查询项目合同_对外建安费(元)(下浮前)和总包合同_对外建安费(元)(下浮前)和合同总价(元)(下浮前)
     * @param contractExtId
     * @return 
     * @see
     */
    BigDecimal selectByDetailAmountSum(String contractExtId);
}